#ifndef __HOST_DATA_TYPE_H__
#define __HOST_DATA_TYPE_H__

#define PID_KP_MAX          5000
#define PID_KI_MAX          5000
#define PID_KD_MAX          9999

#define SV_OFFSET_MAX       1000
#define SV_OFFSET_MIN       -1000

#define PV_OFFSET_MAX       1000
#define PV_OFFSET_MIN       -1000

#define DISPLAY_RANGE_MAX   9999
#define DISPLAY_RANGE_MIN   -1999

#define FILTER_DEGREE_MAX   99

#define MB_ADDR_MAX         127
#define MB_ADDR_MIN         1

#define STEAD_ALARM_MAX     1000

#define TEC_POWER_MAX       100

#define PROG_TEMP_ACCEPTANCE_MAX  200
#define PROG_LOOP_CNT_MAX   100
#define PROG_LOOP_CNT_MIN   1

enum Work_Mode
{
    Work_Mode_Off = 0x20,
    Work_Mode_Normal = 0x21,
    Work_Mode_Prog = 0x22,
    Work_Mode_Hold = 0x23,
    Work_Mode_AT,
    WORK_MODE_MAX
};

enum Temp_Sensor_Type
{
    Temp_Sensor_Type_TCJ = 5,
    Temp_Sensor_Type_TCK,
    Temp_Sensor_Type_TCT,
    Temp_Sensor_Type_TCE,
    Temp_Sensor_Type_TCB,
    Temp_Sensor_Type_TCR,
    Temp_Sensor_Type_TCS,
    Temp_Sensor_Type_TCN,
    Temp_Sensor_Type_TCC,
    Temp_Sensor_Type_PT100,
    Temp_Sensor_Type_PT1000,
    Temp_Sensor_Type_NTC
};

enum Temp_Unit_Type
{
    Temp_Unit_Type_Celsius = 0x14,
    Temp_Unit_Type_Fahrenheit,
};

enum TEC_Ctrl_Mode
{
    TEC_Ctrl_Mode_Auto,
    TEC_Ctrl_Mode_Hand,
    TEC_Ctrl_Mode_Max
};

enum TEC_Output_Dir
{
    TEC_Output_Dir_Negative = 3,
    TEC_Output_Dir_Positive,
    TEC_Output_Dir_Max
};

enum PID_Mode
{
    PID_Mode_A,
    PID_Mode_B,
    PID_Mode_C,
    PID_MODE_MAX
};

enum Decimal_Point_Nbr
{
    Decimal_Point_Nbr_0 = 0x17,
    Decimal_Point_Nbr_1,
    Decimal_Point_Nbr_2
};

enum MB_Baudrate_ID
{
    MB_Baudrate_ID_2400 = 0x1A,
    MB_Baudrate_ID_4800,
    MB_Baudrate_ID_9600,
    MB_Baudrate_ID_19200,
    MB_Baudrate_ID_38400,
};

enum Prog_Step_Mode
{
    Prog_Step_Mode_End = 0x26,
    Prog_Step_Mode_Hold,
    Prog_Step_Mode_Loop,
    Prog_Step_Mode_Next
};

enum Prog_Time_Unit
{
    Prog_Time_Unit_Sec = 0x24,
    Prog_Time_Unit_Min,
};

#endif
